home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / Booting Gallery / Booting Gallery (source) / (Libraries) / Sound Streaming / Receiver.h next >
Encoding:
Text File  |  1996-06-22  |  1.4 KB  |  73 lines  |  [TEXT/BROW]

  1. // Receiver.h
  2. // Created by Bill Hubauer on Mon, Jun 19, 1995 @ 8:16 AM.
  3.  
  4. #ifndef __Receiver__
  5. #define __Receiver__
  6.  
  7. #ifndef __SSTYPES__
  8. #include "SSTypes.h"
  9. #endif
  10.  
  11. #ifndef __Semaphore__
  12. #include "Semaphore.h"
  13. #endif
  14.  
  15. class SReceiver
  16. {
  17. public:
  18.     SReceiver(SSReadProcPtr readProc,long readProcRefCon,SSCancelReadProcPtr cancelProc,UInt32 bufferSize);
  19.     virtual ~SReceiver();
  20.     
  21.     OSErr    Initialize();
  22.     
  23.     void    SetSHeader(const SHeader& header)            {_header = header;}
  24.     
  25.     OSErr    Start();
  26.     
  27. private:
  28.     void    StartRead();
  29.     void    StartPlay();
  30.     
  31.     void    CancelRead();
  32.     void    DoRead();
  33.     void    DoPlay();
  34.     
  35.     void    PlayBuffer();
  36.     void    InitSoundHeader();
  37.     
  38.     static pascal void _CancelCompleteRead(long compData,OSErr ioResult,long ioLength);
  39.     static pascal void _CompleteRead(long completionData,OSErr ioResult,long ioLength);
  40.     void                CompleteRead(OSErr ioResult,long ioLength);
  41.  
  42.     static pascal void _SoundCallBack(SndChannelPtr chan, SndCommand *cmd);
  43.  
  44.     long                _saveGlobals;
  45.  
  46.     SSReadProcPtr        _readProc;
  47.     long                _readProcRefCon;
  48.     SSCancelReadProcPtr    _cancelProc;
  49.     
  50.     SHeader                _header;
  51.     
  52.     char*                _readBuffer;
  53.     char*                _playBuffer;
  54.     UInt32                _bufferSize;
  55.     UInt32                _bytesInReadBuffer;
  56.     UInt32                _bytesInPlayBuffer;
  57.     
  58.     SndChannelPtr        _channel;
  59.     CSemaphore            _readFlag;
  60.     CSemaphore            _playFlag;
  61.     Boolean                _readDoneQ;
  62.     Boolean                _readAgainQ;
  63.     Boolean                _shuttingDownQ;
  64.     
  65.     StateBlock            _stateVars;
  66.     LeftOverBlock        _leftOverSamples;
  67.  
  68.  
  69.     
  70. };
  71.  
  72. #endif
  73.